package main

import "fmt"

/**
给定一个非负整数 numRows，生成杨辉三角的前 numRows 行。

在杨辉三角中，每个数是它左上方和右上方的数的和。

示例:

输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
*/

func main() {
	numRows := 5
	result := generate(numRows)
	fmt.Println(result)
}

func generate(numRows int) [][]int {
	if numRows == 0 {
		return nil
	}
	result := make([][]int, 0)
	result = append(result, []int{1})
	for i := 1; i < numRows; i++ {
		temp := []int{1}
		for j := 1; j < i-1; j++ {
			temp = append(temp, result[i-1][j-1]+result[i-1][j])
		}
		temp = append(temp, 1)
		result = append(result, temp)
	}
	return result
}
